<?php

class ProductController extends RController
{

    public function actionIndex()
    {
        $this->render('index');
    }

    public function actionList()
    {
        $model = new Product;

        if (!empty($_POST['SearchForm'])) {
            $searchFormData = $_POST['SearchForm'];
            $searchForm = new SearchForm();
            $searchForm->setAttributes($searchFormData);
            $data = $searchForm->getAttributes();
            $keyword = $data['keyword'];
            $category_id = $data['category_id'];

            $criteria = new CDbCriteria();

            if (!empty($keyword)) {
                $criteria->condition = "MATCH (title, brand, description) AGAINST ('$keyword' IN BOOLEAN MODE)";
            }

            if (!empty($category_id)) {
                $criteria->addCondition('category_id = :category_id');
                $criteria->params = array(':category_id' => $category_id);
            }

            $dataProvider = new CActiveDataProvider('Product', array(
                'criteria' => $criteria
            ));
        }

        if (empty($_POST['SearchForm'])) {
            $dataProvider = $model->listProduct();
        }
        $this->breadcrumbs = array(
            'Sản phẩm' => array('/product'),
            'Danh sách sản phẩm'
        );
        
        $this->render('list', array(
            'dataProvider' => $dataProvider
        ));
    }

    public function actionCreate()
    {
        $model = new Product();
        if (isset($_POST['Product'])) {
            $model->setAttributes($_POST['Product']);

            if ($model->validate() && $model->save()) {
                Yii::app()->user->setFlash('success', 'Bạn đã thêm sản phẩm mới thành công');
            } else {
                Yii::app()->user->setFlash('error', 'Có lỗi xảy ra');
            }
        }

        $this->breadcrumbs = array(
            'Sản phẩm' => array('/product/product/list'),
            'Tạo sản phẩm mới'
        );

        $this->render('_form', array(
            'model' => $model,
        ));
    }

    public function actionUpdate()
    {
        $id = Yii::app()->getRequest()->getQuery('id');
        $model = Product::model()->findByPk($id);

        if (isset($_POST['Product'])) {
            $model->setAttributes($_POST['Product']);
            if ($model->validate() && $model->save()) {
                Yii::app()->user->setFlash('success', 'Bạn đã cập nhật sản phẩm thành công');
            } else {
                Yii::app()->user->setFlash('error', 'Có lỗi xảy ra');
            }
        }
        $this->breadcrumbs = array(
            'Sản phẩm' => array('/product/product/list'),
            'Cập nhật sản phẩm'
        );

        $this->render('_form', array(
            'model' => $model
        ));
    }

    public function actionDelete()
    {
        $id = Yii::app()->getRequest()->getQuery('id');
        $model = Product::model()->findByPk($id);
        $model->delete();
    }

    public function actionView()
    {

        $id = Yii::app()->getRequest()->getQuery('id');
        $model = Product::model()->with('category')->findByPk($id);

        $this->breadcrumbs = array(
            'Sản phẩm' => array('/product/product/list'),
            'Chi tiết sản phẩm'
        );

        $this->render('view', array(
            'model' => $model
        ));
    }
   
    public function filters()
    {
        return array(
            'rights'
        );
    }

}